import javax.xml.transform.Source;
import java.sql.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //查询
        m1();
        //条件查询
        m2();
        //增加
        m3();
        //删除
        m4();
        //修改
        m5();
    }
    private static void m1 () {
        //1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String URL = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            String USER = "root";
            String PASSWORD = "ccylyw0589";
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
            /*if (connection != null) {
                System.out.println("连接成功");
            }*/
            //3.写sql
            String sql = "select * from user";
            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //5.有参设参
            //6.执行sql
            ResultSet resultSet = preparedStatement.executeQuery();
            //7.遍历结果集
            while (resultSet.next()) {
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String pass = resultSet.getString(3);
                System.out.println(id + "-----" + name + "-----" + pass);
            }
            //8.
            resultSet.close();
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m2() {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要查询的姓名:");
            String word = sc.next();
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String URL = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            String USER = "root";
            String PASSWORD = "ccylyw0589";
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
           /* if (connection != null) {
                System.out.println("连接成功");
            }*/
            //3.写sql
            String sql = "select * from user where name like ?";
            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //5.有参设参
            preparedStatement.setObject(1, "%" + word + "%");
            //6.执行sql
            ResultSet resultSet = preparedStatement.executeQuery();
            //7.遍历结果集
            while (resultSet.next()) {
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String pass = resultSet.getString(3);
                System.out.println(id + "-----" + name + "-----" + pass);
            }
            //8.
            resultSet.close();
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }


    private static void m3() {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要新增的的姓名:");
            String name = sc.next();
            System.out.println("请输入你要新增的的密码:");
            String pass = sc.next();
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String URL = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            String USER = "root";
            String PASSWORD = "ccylyw0589";
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
            /*if (connection != null) {
                System.out.println("连接成功");
            }*/
            //3.写sql
            String sql = "insert into user(name,pass) values(?,?)";
            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //5.有参设参
            preparedStatement.setObject(1, name);
            preparedStatement.setObject(2, pass);
            //6.执行sql
            int result = preparedStatement.executeUpdate();
            //7.遍历结果集
            if(result > 0) {
                System.out.println("新增成功");
            }
            //8.
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m4() {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要删除的的id:");
            String id = sc.next();
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String URL = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            String USER = "root";
            String PASSWORD = "ccylyw0589";
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
            /*if (connection != null) {
                System.out.println("连接成功");
            }*/
            //3.写sql
            String sql = "delete from user where id = ?";
            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //5.有参设参
            preparedStatement.setObject(1, id);

            //6.执行sql
            int result = preparedStatement.executeUpdate();
            //7.遍历结果集
            if(result > 0) {
                System.out.println("删除成功");
            }
            //8.
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m5() {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要修改的的id:");
            String id = sc.next();
            System.out.println("请输入你修改后的的name:");
            String name = sc.next();
            System.out.println("请输入你修改的后的pass:");
            String pass = sc.next();
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
            String URL = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            String USER = "root";
            String PASSWORD = "ccylyw0589";
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
            /*if (connection != null) {
                System.out.println("连接成功");
            }*/
            //3.写sql
            String sql1 = "update user set name=? where id=?";
            String sql2 = "update user set pass=? where id=?";
            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql1);
            PreparedStatement preparedStatement1 = connection.prepareStatement(sql2);
            //5.有参设参
            preparedStatement.setObject(1, name);
            preparedStatement.setObject(2, id);
            preparedStatement1.setObject(1, pass);
            preparedStatement1.setObject(2, id);

            //6.执行sql
            int result = preparedStatement.executeUpdate();
            int result1 = preparedStatement1.executeUpdate();
            //7.遍历结果集
            if(result +result1> 1) {
                System.out.println("修改成功");
            }
            //8.
            preparedStatement.close();
            preparedStatement1.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
